From 2ed2802aa7c93d27b77ebd95544c2e901e571e85 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Fri, 17 Mar 2006 13:44:48 -0700 Subject: [PATCH] [IA64] setting rr0 is not correctly emulated When guest is not at metaphysical mode, VMM should set machine rr0. Signed-off-by: Anthony Xu --- xen/arch/ia64/xen/regionreg.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/xen/arch/ia64/xen/regionreg.c b/xen/arch/ia64/xen/regionreg.c index 8718b931a1..727376f76d 100644 --- a/xen/arch/ia64/xen/regionreg.c +++ b/xen/arch/ia64/xen/regionreg.c @@ -249,13 +249,18 @@ int set_one_rr(unsigned long rr, unsigned long val) newrrv.rid = newrid; newrrv.ve = 1; // VHPT now enabled for region 7!! newrrv.ps = PAGE_SHIFT; - if (rreg == 0) + + if (rreg == 0) { v->arch.metaphysical_saved_rr0 = vmMangleRID(newrrv.rrval); - else if (rreg == 7) + if (!PSCB(v,metaphysical_mode)) + set_rr(rr,newrrv.rrval); + } else if (rreg == 7) { ia64_new_rr7(vmMangleRID(newrrv.rrval),v->vcpu_info, v->arch.privregs, __get_cpu_var(vhpt_paddr), (unsigned long) pal_vaddr); - else set_rr(rr,newrrv.rrval); + } else { + set_rr(rr,newrrv.rrval); + } #endif return 1; } -- 2.30.2